<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<style>
    .title {
        background-color: aqua;
    }
</style>

<body>
    <div id="test"></div>
    <div id="root"></div>
</body>
<!-- 核心 -->
<script type="text/javascript" src="./js/react.development.js"></script>

<!-- 虚拟DOM -->
<script type="text/javascript" src="./js/react-dom.development.js"></script>

<!-- 用于将jsx转化为js -->
<script type="text/javascript" src="./js/babel.min.js"></script>

<script type="text/babel">
    // 1.创建组件
    class Weather extends React.Component {
        // 构造器调用几次？ ----- 1次
        constructor(props) {
            super(props)
            // 初始化状态
            this.state = { isHot: false,wind:'微风' }
            // 解决demo中this指向问题
            // this.demo = this.demo.bind(this)
        }
        render() {
            // 读取状态
            const { isHot,wind } = this.state
            return <h1 onClick={this.demo}>今天天气很{isHot ? '炎热' : '凉爽'},{wind}</h1>
        }

        // 自定义方法————要用赋值语句的形式 + 箭头函数
        demo = () => {
            // 获取原来的isHot值
            const isHot = this.state.isHot
            // 严重注意：状态（state）不可直接更改。要借助一个内置的API去更改
            // this.state.isHot = !isHot  错误的写法

            // 状态必须通过setState进行更新
            this.setState({isHot:!isHot})
        }
    }
    // 2.渲染组件到页面
    ReactDOM.render(<Weather />, document.getElementById('test'))
</script>

</html>